package controleponto.db.dao;

import java.util.List;

import javax.persistence.TypedQuery;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Root;

import controleponto.db.model.Colaborador;
import controleponto.db.model.MarcacaoPonto;

public class ColaboradorDAO extends EntityDAO implements IEntityDAO<Colaborador> {

	@Override
	public void Adiciona(Colaborador item) {
		AdicionaDAO(item);		
	}

	@Override
	public void Atualiza(Colaborador item) {
		AtuallizaDAO(item);		
	}

	@Override
	public void Remove(Colaborador item) {
		RemoveDAO(item);
	}

	@Override
	public List<Colaborador> ListaTodos() {
		CriteriaBuilder cb = getEntityManager().getCriteriaBuilder();
		CriteriaQuery<Colaborador> cq = cb.createQuery(Colaborador.class);
		Root<Colaborador> root = cq.from(Colaborador.class);
		cq = cq.select(root);
		TypedQuery<Colaborador> qr = getEntityManager().createQuery(cq);
		return qr.getResultList();
	}

	@Override
	public Colaborador getItem(Object filter) {		
		return getEntityManager().find(Colaborador.class, filter);
	}
	
	public List<MarcacaoPonto> getMarcacaoPontos(Object filter) {
		Colaborador col = getEntityManager().find(Colaborador.class, filter);
		
		return col.getMarcacaoPonto();
	}

}
